package epoch.db;

import epoch.db.agent.IDbAgent;
import epoch.db.gamedb.Entity;

/**
 * 数据库访问代理工厂类
 * @author will
 * @date 2016年4月26日 上午10:28:10
 */
public class DB {

	//默认本地代理
	private static IDbAgent dbAgent;
	//
	public static int DB_SERVICE_ID=1;

	/**
	 * 根据传入的Agent进行初始化
	 * @param dbAgent
	 */
	public static void init(IDbAgent dbAgent) {
		DB.dbAgent = dbAgent;
	}
	
	/**
	 * 创建Server数据访问代理
	 * @return
	 */
	public static IDbAgent getAgent(){
		return dbAgent;
	}
	
	/**
	 * 根据实体类型创建访问代理
	 * @param entity
	 * @return
	 */
	public static IDbAgent getAgent(EntityEnum entity){
		return getAgent(entity.getTableName());
	}
	
	/**
	 * 根据表名称创建实体访问代理
	 * @param tableName
	 * @return
	 */
	public static IDbAgent getAgent(String tableName) {
		return dbAgent;
	}
	
	/**
	 * 根据表名称创建实体访问代理
	 * @param tableName
	 * @return
	 */
	public static <T extends Entity> IDbAgent getAgent(Class<T> className) {
		return dbAgent;
	}
	
}
